home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / pcl / sptmbr11.lha / README < prev    next >
Text File  |  1992-04-28  |  4KB  |  88 lines

  1.  
  2. The file March-92-PCL-2.tar.Z contains a new version of PCL.
  3. This version contains full support for structure classes and many optimizations
  4. which speed up PCL at run-time, and is closer than previous versions of PCL to 
  5. the metaobject protocol specified in "The Art of the Metaobject Protocol", 
  6. chapters 5 and 6, by Gregor Kiczales, Jim des Riveres, and Daniel G. Bobrow.
  7. See the file notes.text for more details.
  8.  
  9.  
  10.  
  11. The file March-92-systems.tar.Z contains all the files in March-92-PCL-2.tar.Z,
  12. as well as several other systems: CLX for X11R5, conditions (based on Kent Pitman's 
  13. cond18.lisp; most of this is loaded only in KCL), and an extensible inspector
  14. that supports multiple views of objects (which is invoked by calling INSPECT).
  15.  
  16. These systems are easily installable: all you need to do to compile and load
  17. everything (if you are using Lucid CL or Allegro CL or AKCL) is load the top-level 
  18. file system.lisp (it would probably work better if you start with a lisp that
  19. does not already have these systems loaded).  If you are using CMU CL, you need 
  20. to edit the top level file init.lisp and load that.  The tools subdirectory is 
  21. for CMU CL users who want to save a world with all these systems in it.
  22.  
  23. There is also a file containing notes on how to use clue and clio with
  24. March 92 PCL.
  25.  
  26.  
  27. I have tested March-92-systems in Lucid's Sun Common Lisp version
  28. 4.0.1, CMU CL version 15e, and AKCL 609.  
  29. [The test that I use is:
  30.  (1) start up X somehow, and be sure the DISPLAY environment variable is set.
  31.  (2) start lisp and load everything (by loading the file "system" or the file "init").
  32.      (I ususally save the lisp image at this point.)
  33.  (3) type: (inspect 'x), and try things a while.]
  34.  
  35. ----------------------------------------------------------------------
  36.  
  37. Within system.lisp are some system distribution functions that can take the 
  38. place of tar for distributing lisp software.  (A system distributed this way 
  39. becomes one big file, that is installed just by loading into lisp.  system.lisp 
  40. also includes software to compress, uuencode, and mail such distributions 
  41. automatically, and the corresponding inverse operations.)
  42.  
  43.  
  44. Also, system.lisp incorporates physical pathname support which (I believe) 
  45. is compatible with CLtL2, with extensions for some useful directory operations.
  46.  
  47.  
  48. If you ever need CLX windows to be CLOS objects, PCL always has to be
  49. loaded before CLX.  But if you never need this (If you know that you
  50. will not be using the inspecter, for example), you only need to exit
  51. about 2 or 3 lines in clx/clx.lisp, comment out about 2 lines in sysdef.lisp,
  52. and recompile CLX (It will probably be necessary to delete the .o files first.
  53. See below.).
  54.  
  55.  
  56. If you want to load or compile just a single system (plus whatever it 
  57. depends upon, of course), load "init.lisp", answer No to the question, then
  58. type (dsys::load-system 'your-system), or (dsys::compile-system 'your-system).  
  59. This is set up so that it will not re-load or re-compile anything unnecessarily.
  60. (It keeps track of the file-write-dates of all loaded files, and checks
  61. them against the filesystem.  PCL is done differently, though.)
  62. On the other hand, the system's idea of what things must be recompiled
  63. is only as good as the declarations in the sysdef files, and I have them set
  64. up in such a way that is fast rather than safe (this means that sometimes
  65. files that should get recompiled will not be, and doesn't have anything to do 
  66. with optimize proclamations.)  If there is a system that you will never use,
  67. you can comment out the "(pushnew 'system-name *auto-load-systems*)" form 
  68. in the file systems/system-name.lisp to avoid having it automatically loaded
  69. when "system" is loaded.
  70.  
  71.  
  72. If you want to compile things with a different optimize proclamation,
  73. you might need to change dsys::*compile-system-proclamation*, or you might
  74. need to edit the various sysdef files involved.
  75.  
  76.  
  77. The inspector will get faster when I do the make-instance optimizations
  78. I am currently thinking about.  I am not certain, but I think that
  79. make-instance is the source of most of the delay  in the inspecter
  80. between when you click the mouse and when you see the result.
  81.  
  82.  
  83. If you use AKCL, when you load system.o, you will see that system.o
  84. gets loaded twice.  The second time it is loaded with si:faslink using "-lc".
  85. If you don't want it to load twice, you need to do more than just use
  86. si:faslink yourself, I am not sure exactly what is necessary.
  87.  
  88.